#pragma once

#include "Gfx.h"
#include <boost/shared_ptr.hpp> //http://nealabq.com/blog/2008/11/26/pointer_cast/
class CStim;
class CPhiGamma;
class CData;
class CRoomData;
class CStimBase;

class CRoomGfx : public CGfx
{
public:
    CRoomGfx(CData* pData_=NULL );
    virtual ~CRoomGfx(void);

    virtual void renderObj();
    virtual void renderBirdView();
    virtual void updateObserver(int nCurrentFrame_);
    virtual void updateBirdObserver(int nCurrentFrame_);
    virtual void updateStatus();
    virtual void LoadParametersFromScript();
    virtual void initDisplayList();

protected:
    void initStimuli(const vector<int>& vConds_);

    CRoomData* _pRoomData;                             //data
    vector<boost::shared_ptr<CStimBase>> _vpcStimDee;  //stimuli vector

    // script variables
    double _dVelocityForward;  // forward velocity
    int    _nNumDots;          // number of dots for each stimulus
    int    _nControlOrder;     // control order
};
